package com.yxw.yx_hotel.service;

import com.yxw.yx_hotel.dto.AddRoomDto;
import com.yxw.yx_hotel.dto.QueryRoomDto;
import com.yxw.yx_hotel.dto.QueryRoomManageDto;
import com.yxw.yx_hotel.dto.QueryRoomStatisticsDto;
import com.yxw.yx_hotel.entity.YxRoomEntity;
import com.yxw.yx_hotel.vo.RoomBedVo;
import com.yxw.yx_hotel.vo.RoomManageVo;
import com.yxw.yx_hotel.vo.RoomStatisticsVo;
import com.yxw.yx_hotel.vo.RoomVo;
import com.yxw.yxnet_cd_center.common.dto.PageVO;

import java.util.List;

/**
 *  宿舍管理
 * @author liuxin
 * @date 2024.01.17
 */
public interface RoomService {

    /**
     * 新增宿舍
     * @param dto
     */
    void addRoom(AddRoomDto dto);

    /**
     * 修改宿舍
     * @param dto
     */
    void updateRoom(AddRoomDto dto);

    /**
     * 删除宿舍
     * @param roomId
     */
    void deleteRoom(Long roomId);

    /**
     * 查询宿舍列表分页
     * @param dto
     * @return
     */
    PageVO<YxRoomEntity> pageRoomList(QueryRoomDto dto);
    /**
     * 查询宿舍列表
     * @param dto
     * @return
     */
    List<YxRoomEntity> getRoomList(QueryRoomDto dto);
    /**
     * 查询宿舍详情
     * @param roomId
     * @return
     */
    RoomVo getRoomById(Long roomId);

    /**
     * 房源统计列表查询
     * @param dto
     * @return
     */
    PageVO<RoomStatisticsVo> pageRoomStatisticsList(QueryRoomStatisticsDto dto);

    /**
     * 房态管理-列表查询
     * @param dto
     * @return
     */
    PageVO<RoomManageVo> pageRoomManageList(QueryRoomManageDto dto);

    /**
     * 根据宿舍ID查询床位列表
     * @param roomId
     * @return
     */
    List<RoomBedVo> getRoomBedByRoomId(Long roomId,Integer status);
}
